/**
 * @Project: SanxiapayCommon
 * @Title: EnumSignType.java
 * @Package com.hundsun.epay.pay
 * @Description: TODO(用一句话描述该文件做什么)
 * @author Administrator yedm@hundsun.com
 * @date 2014-11-4 上午11:21:15
 * @Copyright: 2014 www.hundsun.com All Rights Reserved.
 * @version V1.0.0.0 
 */
package com.hundsun.epay.pay;

import java.util.LinkedHashMap;
import java.util.Map;

/**
 * 
 * @ClassName EnumSignType
 * @Description 签名类型
 * @author zhangxl zhangxl09877@hundsun.com
 * @date 2014-11-4
 */
public enum EnumSignType {

    /** md5-MD5加签*/
    MD5("MD5","MD5"),
    /** RSA-RSA加签 */
    RSA("RSA","RSA");
 
    private String code;
    private String msg;
    private boolean display;
    
    EnumSignType(String code, String msg) {
      this.code = code;
      this.msg = msg;
      this.display = true;
    }
    
    public String getCode() {
      return code;
    }
    
    public void setCode(String code) {
      this.code = code;
    }
    
    public String getMsg() {
      return msg;
    }
    
    public void setMsg(String msg) {
      this.msg = msg;
    }
    
    public boolean isDisplay() {
      return display;
    }
    
    public void setDisplay(boolean display) {
      this.display = display;
    }
    
    /**
     * 根据枚举的code返回枚举对象
     * @param code  枚举code值
     * @return  枚举对象
     */
    public static EnumSignType getEnumByCode(String code) {
      if (code == null) return null;
      for (EnumSignType type : values()) {
          if (type.getCode().equals(code.trim()))
              return type;
      }
      return null;
    }
    
    /**
     * 将枚举转换成code-msg形式的集合
     * 可通过<code>EnumXXX.setDisplay(false);</code>的方式将不需要的枚举类型不转换成map
     * @return  转换后的map集合
     */
    public static Map<String, String> toMap() {
      Map<String, String> enumDataMap = new LinkedHashMap<String, String>();
      for (EnumSignType type : EnumSignType.values()) {
          if (type.isDisplay()) enumDataMap.put(type.getCode(), type.getMsg());
      }
      return enumDataMap;
    }
    
    /**
     * 将枚举转换成code-code-msg形式的集合
     * 可通过<code>EnumXXX.setDisplay(false);</code>的方式将不需要的枚举类型不转换成map
     * @return  转换后的map集合
     */
    public static Map<String, String> toMixMap() {
      Map<String, String> enumDataMap = new LinkedHashMap<String, String>();
      for (EnumSignType type : EnumSignType.values()) {
          if (type.isDisplay()) enumDataMap.put(type.getCode(), type.getCode() + "-" + type.getMsg());
      }
      return enumDataMap;
    }
 
 
}
